package com.cfpamf.ms.insur.pay.constant;

import com.cfpamf.common.ms.enums.MSEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;

import static com.cfpamf.ms.insur.pay.constant.BaseConstants.ERROR_CODE_PREFIX;

/**
 * 系统业务异常
 *
 * @author zhangnayi
 */
@Getter
@AllArgsConstructor
public enum BizExceptEnum implements MSEnum {

    /**
     * 支付类型参数错误
     */
    PAY_TYPE_ERROR(ERROR_CODE_PREFIX + "000101", "支付类型参数错误"),

    /**
     * 支付方式参数错误
     */
    PAY_METHOD_ERROR(ERROR_CODE_PREFIX + "000102", "支付方式参数错误"),

    /**
     * 支付宝API调用失败
     */
    ALIPAY_API_ERROR(ERROR_CODE_PREFIX + "000103", "支付宝API调用失败"),

    /**
     * 支付系统编码参数错误
     */
    SYSTEM_CONFIG_ERROR(ERROR_CODE_PREFIX + "000104", "商户系统编号参数错误"),

    /**
     * 微信API调用失败
     */
    WX_API_ERROR(ERROR_CODE_PREFIX + "000105", "微信API调用失败"),

    /**
     * 商户系统订单号错误
     */
    ORDER_ERROR(ERROR_CODE_PREFIX + "000105", "商户系统订单号错误"),

    /**
     * 订单已经支付
     */
    PAY_REPERT(ERROR_CODE_PREFIX + "000201", "订单已经支付"),

    /**
     * 订单支付金额错误
     */
    PAY_AMOUNT_ERROR(ERROR_CODE_PREFIX + "000202", "订单支付金额错误"),

    /**
     * 退款处理中，请勿重试
     */
    REFUND_ING(ERROR_CODE_PREFIX + "000301", "退款处理中，请勿重试"),

    /**
     * 订单已退款
     */
    REFUND_REPEART(ERROR_CODE_PREFIX + "000302", "订单已退款"),

    /**
     * 订单未支付成功，不能退款
     */
    REFUND_UNPAY(ERROR_CODE_PREFIX + "000303", "订单未支付成功，不能退款"),

    /**
     * 订单退款失败
     */
    REFUND_ERROR(ERROR_CODE_PREFIX + "000304", "订单退款失败"),

    /**
     * 订单退款金额错误
     */
    REFUND_AMOUNT_ERROR(ERROR_CODE_PREFIX + "000305", "订单退款金额错误"),

    /**
     * 退款金额大于支付金额
     */
    REFUND_AMOUNT_OVER_PAY(ERROR_CODE_PREFIX + "000305", "退款金额大于支付金额"),
    ;

    /**
     * 编码
     */
    private String code;

    /**
     * 错误消息
     */
    private String msg;
}
